import request from '@/utils/request'

// 数据权限响应类型
export interface DataPermissionResponse {
  roleId: number
  roleName: string
  dataScope: number // 1-全部数据 2-本部门数据 3-本部门及以下数据 4-仅自己数据 5-自定义数据
  orgIds: number[]
  createdAt: string
  updatedAt: string
}

// 数据权限查询参数
export interface DataPermissionQueryParams {
  roleId?: number
}

// 更新数据权限请求
export interface UpdateDataPermissionRequest {
  dataScope: number
  orgIds?: number[]
}

// 获取数据权限列表
export function getDataPermissionList(params?: DataPermissionQueryParams) {
  return request.get<DataPermissionResponse[]>('/data-permissions', params)
}

// 根据角色ID获取数据权限
export function getDataPermissionByRoleId(roleId: number) {
  return request.get<DataPermissionResponse>(`/data-permissions/${roleId}`)
}

// 更新数据权限
export function updateDataPermission(roleId: number, data: UpdateDataPermissionRequest) {
  return request.put<DataPermissionResponse>(`/data-permissions/${roleId}`, data)
}

// 删除数据权限（重置为默认）
export function deleteDataPermission(roleId: number) {
  return request.delete<DataPermissionResponse>(`/data-permissions/${roleId}`)
}

// 批量更新数据权限
export function batchUpdateDataPermissions(data: Record<number, UpdateDataPermissionRequest>) {
  return request.put<DataPermissionResponse>('/data-permissions/batch', data)
}
